# 用于存储学生成绩信息的字典
students_scores = {}

def record_score():
    """记录学生成绩"""
    name = input("请输入学生姓名：")
    id_num = input("请输入学生学号：")
    course = input("请输入课程名称：")
    try:
        score = float(input("请输入成绩（0-100）："))
        if 0 <= score <= 100:
            key = (name, id_num, course)
            students_scores[key] = score
            print("成绩已成功记录！")
        else:
            print("成绩不在合法范围（0-100）内，请重新输入。")
    except ValueError:
        print("输入的成绩不是有效的数字，请重新输入。")


def query_score():
    """查询学生成绩"""
    print("请选择查询方式：")
    print("1. 按学生姓名查询")
    print("2. 按学生学号查询")
    print("3. 按课程名称查询")
    choice = input("请输入选项序号：")
    if choice == "1":
        name = input("请输入学生姓名：")
        for key, value in students_scores.items():
            if key[0] == name:
                print(f"姓名：{key[0]}, 学号：{key[1]}, 课程：{key[2]}, 成绩：{value}")
        else:
            print("未找到该学生的成绩记录。")
    elif choice == "2":
        id_num = input("请输入学生学号：")
        for key, value in students_scores.items():
            if key[1] == id_num:
                print(f"姓名：{key[0]}, 学号：{key[1]}, 课程：{key[2]}, 成绩：{value}")
        else:
            print("未找到该学号对应的成绩记录。")
    elif choice == "3":
        course = input("请输入课程名称：")
        for key, value in students_scores.items():
            if key[2] == course:
                print(f"姓名：{key[0]}, 学号：{key[1]}, 课程：{key[2]}, 成绩：{value}")
        else:
            print("未找到该课程的成绩记录。")
    else:
        print("无效的查询选项，请重新输入。")


def statistics_score():
    """统计课程成绩"""
    course = input("请输入课程名称：")
    scores = []
    for key, value in students_scores.items():
        if key[2] == course:
            scores.append(value)
    if scores:
        average = sum(scores) / len(scores)
        highest = max(scores)
        lowest = min(scores)
        print(f"课程：{course}")
        print(f"平均分：{average:.2f}")
        print(f"最高分：{highest}")
        print(f"最低分：{lowest}")
    else:
        print(f"未找到课程 {course} 的成绩记录。")


def main_menu():
    """主菜单"""
    while True:
        print("欢迎使用学生成绩管理系统")
        print("请选择操作：")
        print("1. 记录学生成绩")
        print("2. 查询学生成绩")
        print("3. 统计课程成绩")
        print("4. 退出系统")
        choice = input("请输入选项序号：")
        if choice == "1":
            record_score()
        elif choice == "2":
            query_score()
        elif choice == "3":
            statistics_score()
        elif choice == "4":
            print("感谢使用学生成绩管理系统，再见！")
            break
        else:
            print("无效的选项，请重新输入。")


if __name__ == "__main__":
    main_menu()